Android SSL/TLS 安全通信实战

📚 共计 30 章节
01
SSL/TLS 基础概念
为什么需要加密通信?SSL 与 TLS 的区别与联系。
🔐 基础📖 理论
02
密码学基础回顾
对称加密、非对称加密、哈希函数、数字签名。
🔑 密码学🧩 核心
03
数字证书与 PKI 体系
X.509 证书结构、CA 信任链、证书链验证。
📜 证书🔗 链
04
Android 网络通信概览
HttpURLConnection、OkHttp、Volley 等框架对比。
📡 网络⚙️ 框架
05
HttpsURLConnection 实战
在 Android 中发起 HTTPS 请求,处理证书验证。
🛡️ HTTPS📱 实战
06
OkHttp 基础配置
引入 OkHttp 库,配置 SSL/TLS 的基本参数。
📦 OkHttp⚡ 配置
07
OkHttp 证书锁定
Certificate Pinning 原理与实战,防止中间人攻击。
🔒 Pinning🛡️ 安全
08
自定义 HostnameVerifier
验证主机名,处理常见的主机名不匹配问题。
🌐 主机名🔍 验证
09
自定义 X509TrustManager
深入信任管理器,实现双向认证。
🤝 双向🛂 信任
10
双向认证 (Mutual TLS) 实战
客户端与服务端互相验证证书。
🔄 mTLS🔐 双向
11
WebView 中的 SSL 处理
处理 WebView 加载 HTTPS 页面的证书错误。
🌐 WebView⚠️ 证书错误
12
WebView 客户端证书请求
处理 WebView 中的客户端证书选择。
📜 客户端证书🖱️ 选择
13
Socket 层 SSL/TLS
使用 SSLSocket 和 SSLServerSocket 实现自定义加密通道。
🔌 Socket⚙️ 原生
14
SSLSocket 实战
创建一个安全的客户端/服务器聊天应用。
💬 聊天🧪 实战
15
SSLContext 详解
初始化 SSLContext,配置 KeyManager 和 TrustManager。
🧰 上下文🔑 管理器
16
KeyStore 与密钥管理
生成、存储和加载密钥库(BKS 格式)。
🗄️ 密钥库🔐 BKS
17
Bouncy Castle 库集成
在 Android 中使用 Bouncy Castle 作为安全提供者。
🏰 BC📦 提供者
18
TLS 1.3 新特性
TLS 1.3 在 Android 中的支持情况与配置。
🚀 TLS 1.3✨ 新特性
19
密码套件 (Cipher Suite) 选择
如何选择安全的密码套件,禁用不安全的套件。
🔐 套件⚖️ 安全
20
协议版本降级攻击
防止 POODLE、BEAST 等攻击,强制使用高版本 TLS。
⬇️ 降级🛡️ 防御
21
网络安全配置 (Network Security Config)
Android 7.0+ 的声明式安全配置。
📋 声明式📱 7.0+
22
网络安全配置实战
使用 network_security_config.xml 配置调试证书。
🔧 配置🧪 调试
23
代理与抓包工具对抗
检测并阻止中间人代理(如 Charles、Fiddler)。
🕵️ 代理🚫 对抗
24
SSL Pinning 的进阶策略
动态 Pinning、备份 Pinning、多域名 Pinning。
📌 进阶🔁 备份
25
证书透明度 (Certificate Transparency)
原理与在 Android 中的实现。
🔍 透明度📜 CT
26
Android 中的 HPKP
HTTP Public Key Pinning (已被弃用,但需了解)。
⚠️ 弃用📚 历史
27
安全日志与监控
记录 SSL/TLS 握手日志,监控异常连接。
📝 日志📊 监控
28
常见 SSL 错误处理
javax.net.ssl.SSLException 等异常的处理策略。
❌ 异常🛠️ 处理
29
性能优化
SSL 会话复用、OCSP Stapling 减少握手延迟。
⚡ 优化⏱️ 延迟
30
综合实战:安全即时通讯 App
构建一个安全的 Android 即时通讯 App,集成所有 SSL/TLS 最佳实践。
📱 综合💬 IM🏆 实战